The cloud computing environment is an enhancement to the predecessor grid environment, whereby multiple grids and other computation resources may be further abstracted by a cloud layer, thus making disparate devices appear to an end-user as a single pool of seamless resources. These resources may include such things as physical or logical compute engines, servers and devices, device memory, and storage devices.
While provisioning workloads on an integrated storage and computation cloud, most solutions make compute and storage placement decisions (i.e. which server to use and which storage node to use) independently of each other. This approach has been shown to lead to suboptimal configurations (e.g., if chosen server does not have enough bandwidth in its connection to the chosen storage node).